<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="../../styles.css" />
        <title>
            CSC207H: Project, Phase I
        </title>
    </head>
    <body>
        <h1>
            CSC207H: Project, Phase I
        </h1>
        <p>
            Phase I of the project is worth 7%, Phase II will be worth 7%, and Phase III will be worth 12%.
        </p>
        <p>
            There is a 1-week extension on Phase I of the project.  It is now due the week of the midterm: Friday 30 October at 10pm.  (The midterm is on the Wednesday in lecture.)
        </p>
        <h2>
            Overview
        </h2>
        <p>
            Phase I of the project has you review a client request for a software program in order to start to clarify their needs. As part of this, you will produce a list of user stories, a small set of further questions for the client, and an accompanying email message. You will also work with a wiki and a team repository, and set up a NetBeans project containing a working program that includes at least some of the goals of the project.
        </p>
        <h2>
            Learning Goals
        </h2>
        <p>
            By the end of this phase, you should have:
        </p>
        <ol>
            <li>practiced soliciting specifications from a non-technical client,
            </li>
            <li>used tools to support collaborative software development such as a wiki and a shared version control repository,
            </li>
            <li>learned and practiced expressing technical content in a professional written context such as email to a client, supervisor, or co-worker,
            </li>
            <li>started a mobile application, and
            </li>
            <li>experienced some of the joys (and frustrations) of working with others and consequently developed some strategies to facilitate productive team interaction.
            </li>
        </ol>
        <h2>
            Team member evaluations
        </h2>
        <p>
            You will be filling out and submitting a form for each of your team members, <strong>including yourself</strong>. This form will rate team members on citizenship: did they attend meetings, did they participate, did they do what they said they were going to do, and so on. We will post a final version before the deadline. Your Phase I will receive a grade, and these evaluations will be used to make individual adjustments to that grade. <strong>These are meant to be private: each team member will hand these in separately, and you are not required to show each other your forms.</strong> In the case of serious disagreement, or if you request it, we will hold a team meeting to discuss the results, but we will never reveal individual ratings.
        </p>
        <h2>
            The Client Request
        </h2>
        <p>
            A company has contacted you about building a program for them. Here is the description.
        </p>
        <blockquote style="font-style:italic">
            <p>
                We'd like you to write a program for cell phones to do a team-building scavenger hunt.  The idea is that the teams would meet, we'd give them a cell phone with further instructions, and they'd work through the exercise doing the tasks we tell them.  We'd like to be able to run different scavenger hunts so you'll need to let us know the file format for that.  We also haven't settled on which cell phones to use; we'd like your input on that, too.  The format for each scavenger hunt might change; for example, sometimes we'd just give the teams a list of things to look for and a place to check them off, and others we might have some kind of unlocking or leveling ability where they don't get to see all of the instructions at once.
            </p>
            <p>
                We were thinking of using <a href="http://www.scavengerhuntanywhere.com/" title="Scavenger Hunt - Corporate Team Building">Scavenger Hunt Anywhere</a> but we figure that we'd rather have a system that we have more control over.  There are also lots of other online resources where you can find out more about team-building scavenger hunts so that you can see the kinds of things we're looking for.
            </p>
            <p>
                Please feel free to send us any questions you have.
            </p>
        </blockquote>
        <h2>
            Part 1: Communicating with the client
        </h2>
        <p>
            The first step is to clarify what the client is asking for.
        </p>
        <h3>
            Clarifications: user stories and further questions
        </h3>
        <p>
            This description is vague in places and incomplete in others. You'll need to clarify it: with your team, spend some time writing no more than 15 <a href="http://www.agilemodeling.com/artifacts/userStory.htm" title="Introduction to User Stories">user stories</a> in order to help you figure out what the client is asking for. Some user stories you'll be certain about, but many will need feedback from the client. Don't worry about distinguishing the ones you're sure about from the ones you're not; the client would want to read all of them anyway, in case there are misunderstandings. Create the user stories on your team's wiki.
        </p>
        <p>
            Also make a list of the five most important questions you need to ask before you can start implementing the program. Create the list of questions on your team's wiki.  Grammar, clarity, and spelling are important.
        </p>
        <h3>
            Email message to the client
        </h3>
        <p>
            Create a plain-text file in your team's repository called <code>email.txt</code>. This should contain the body of an email message that you are preparing to send to the client. (Assume that you'd send the user stories and questions as attachments for the email.) The message should thank the client for their request and ask the client to review the user stories (which would be included as an attachment). It should then ask <em>two</em> of the questions from the list you have prepared on your wiki. Pick the two you consider to be the most important in order for you to get started. Create the email in a plain-text file in your team's repository, and assume that you'll ask the other three questions in a later email.
        </p>
        <h3>
            Suggestions on writing
        </h3>
        <p>
            Read the U of T <a href="http://www.enough.utoronto.ca/computeruse/eetiquette.htm" title="E-mail Etiquette">E-mail Etiquette</a> page.
        </p>
        <p>
            You should use correct English, writing complete sentences with correct spelling and grammar. Remember that you are writing in a professional context, but try not to sound stuffy. Be careful not to use technical language that the client will not understand (assume they don't know anything about programming) and don't include details that are not important from the client's perspective. Use a spell checker and have each member of your team edit all the documents. <strong>Everyone should proofread the final submission.</strong>
        </p>
        <h3>
            Some technical requirements
        </h3>
        <p>
            Because one of the project goals is to have each student experience using a wiki and a version control tool in a collaborative context, this phase has an extra requirement. Every member of your team must commit a change to the email document (use meaningful log messages!), and every member must contribute to or edit either the user stories list or the questions list. The <code>svn log</code> command is useful to see if you have met this requirement.
        </p>
        <h2>
            Part 2: Starting a project
        </h2>
        <p>
            In your team repository, create a mobile NetBeans project.  Make sure that everyone in the team has checked it out, can compile it, and can run it.
        </p>
        <p>
            Your program must accomplish something related to the client request: there is plenty there to start with that isn't vague or incomplete, and you'll be getting feedback in lecture and on the discussion board. <strong>It doesn't have to do much</strong>, but it has to do something relevant.
        </p>
    </body>
</html>
